Since the dawn of the computer age, computers have evolved and become more and more powerful. In our present day, computers have become indispensable in many fields of human endeavor including engineering design, machine and process control, information storage and retrieval, and office computing. One of the primary uses of computers is for information storage and retrieval.
Database systems have been developed that allow a computer to store a large amount of information in a way that allows a user to search for and retrieve specific information in the database. For example, an insurance company may have a database that includes all of its policy holders and their current account information, including payment history, premium amount, policy number, policy type, exclusions to coverage, etc. A database system allows the insurance company to retrieve the account information for a single policy holder among the thousands and perhaps millions of policy holders in its database. The database may include a relational database.
Retrieval of information from a database is typically done using queries. A query usually specifies conditions that apply to one or more columns of the database, and may specify relatively complex logical operations on multiple columns. The database is searched for records that satisfy the query, and the records are returned as a query result.
Graphical query interfaces have been developed that help a user to query a database. One problem with the existing graphical query interfaces is that a user who does not have detailed knowledge of the database relationships may define a query that could return millions of records, or could define a query that returns no records. As a result, the user may spend time building a query only to find out after executing the query that the query did not return the desired data. The user must then guess at what changes to make to the query so that it returns the desired data.
Some graphical querying interfaces list all available columns in a database from which the user may select one or more columns to build up a query. The user may also select a field in a column to further refine the query conditions. Building a query by selecting columns and records is a very tedious and time consuming process especially when the database being queried is very large and contains hundreds of columns and thousands of records.
Thus the prior art teaches the generation of queries by a tedious and time consuming process that is not terribly useful because it returns a dataset that may be too large or too small.